#ifndef IDEVICEDIRECTOR_H_
#define IDEVICEDIRECTOR_H_

#include "controllor/IDoorControlBoard.h"
#include "IDeviceBuilder.h"

namespace zl
{
namespace zlbase
{


/// \brief 建造者类指挥者
template <class BuilderType, class DeviceType>
class CDeviceDirector
{
public:
    CDeviceDirector() = default;
    ~CDeviceDirector() = default;

    inline std::shared_ptr<DeviceType> Concreate(std::shared_ptr<BuilderType> builder, const DeviceOption &option) 
    { return builder->BuildProduct(option); }
};

} // namespace zlbase
} // namespace zl

#endif // IDEVICEDIRECTOR_H_